package util; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.core.util.MultivaluedMapImpl; import java.util.Iterator; import javax.ws.rs.core.MultivaluedMap; import restservices.request.GeolocalizacionRequest; import restservices.response.GeolocalizacionOSMResponse; public class Services { public static GeolocalizacionRequest localizarPedidoPorId(String pedidoId) { Client client = Client.create(); WebResource webResource = client.resource("http://localhost:8080/TeleCafe/rest/mockup/localizacion"); MultivaluedMap formData = new MultivaluedMapImpl(); String input = "{\"idpedido\":\"" + pedidoId + "\"}"; ClientResponse response = webResource.type("application/json") .post(ClientResponse.class, input); String respuesta = response.getEntity(String.class); Gson gson = new Gson(); GeolocalizacionRequest gloc = new GeolocalizacionRequest(); gloc = gson.fromJson(respuesta, GeolocalizacionRequest.class); return gloc; } public static GeolocalizacionOSMResponse localizarPedidoPorCalle(String calle) { Client client = Client.create(); WebResource webResource = client.resource("http://nominatim.openstreetmap.org/search.php"); MultivaluedMap queryParams = new MultivaluedMapImpl(); queryParams.add("q", calle); queryParams.add("format", "json"); ClientResponse response = webResource.queryParams(queryParams).get(ClientResponse.class); GeolocalizacionOSMResponse localizacion = new GeolocalizacionOSMResponse(); if (response.getStatus() == 200) { String respuesta = response.getEntity(String.class); JsonElement json = new JsonParser().parse(respuesta); JsonArray array = json.getAsJsonArray(); Iterator iterator = array.iterator(); while (iterator.hasNext()) { JsonElement json2 = (JsonElement) iterator.next(); String jsonparseado = json2.toString(); jsonparseado = jsonparseado.replace("class", "clase"); Gson gson = new Gson(); localizacion = gson.fromJson(jsonparseado, GeolocalizacionOSMResponse.class); break; } } return localizacion; } }